package com.binance.mbxgateway.web.utils;

import java.util.List;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists;

public class MatchboxReturnUtils {

//    public static void checkMbxInvokeReturnValue(Object returnValue) {
//        JSONObject jsonObject = null;
//        if (returnValue instanceof String) {
//            String value = (String) returnValue;
//            if (StringUtils.isNotBlank(value)) {
//                Object object = JSON.parse(value);
//                if (object instanceof JSONObject) {
//                    jsonObject = (JSONObject) object;
//                }
//            }
//        } else if (returnValue instanceof JSONObject) {
//            jsonObject = (JSONObject) returnValue;
//        }
//        if (jsonObject != null) {
//            if (jsonObject.keySet().size() == 2) {
//                if (jsonObject.containsKey("code")) {
//                    int code = jsonObject.getIntValue("code");
//                    if (code < 0) {
//                        throw new BusinessException(GeneralCode.SYS_ERROR, jsonObject.getString("msg"));
//                    }
//                }
//            }
//        }
//
//    }



    @SuppressWarnings("unchecked")
    public static <T> T getMbxValue(String jsonStr, Class<T> clazz) {
        if (clazz.isAssignableFrom(String.class)) {
            return (T) jsonStr;
        }
        JSON json = (JSON) JSON.parse(jsonStr);
        return json.toJavaObject(clazz);
    }

    public static <T> List<T> getMbxValueAsList(String jsonStr, Class<T> clazz) {
        JSON json = (JSON) JSON.parse(jsonStr);
        if (json instanceof JSONObject) {
            return Lists.newArrayList(getMbxValue(jsonStr, clazz));
        }
        return ((JSONArray) json).toJavaList(clazz);
    }

}
